.TH std::mbsinit 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::mbsinit \- std::mbsinit

.SH Synopsis
   Defined in header <cwchar>
   int mbsinit( const std::mbstate_t* ps);

   If ps is not a null pointer, the mbsinit function determines whether the pointed-to
   std::mbstate_t object describes the initial conversion state.

.SH Notes

   Although a zero-initialized std::mbstate_t always represents the initial conversion
   state, there may be other values of std::mbstate_t that also represent the initial
   conversion state.

.SH Parameters

   ps - pointer to the std::mbstate_t object to examine

.SH Return value

   0 if ps is not a null pointer and does not represent the initial conversion state,
   nonzero value otherwise.

.SH Example


// Run this code

 #include <clocale>
 #include <cwchar>
 #include <iostream>
 #include <string>

 int main()
 {
     // allow mbrlen() to work with UTF-8 multibyte encoding
     std::setlocale(LC_ALL, "en_US.utf8");
     // UTF-8 narrow multibyte encoding
     std::string str = "水"; // or u8"\\u6c34" or "\\xe6\\xb0\\xb4"
     std::mbstate_t mb = std::mbstate_t();
     (void)std::mbrlen(&str[0], 1, &mb);
     if (!std::mbsinit(&mb))
         std::cout << "After processing the first 1 byte of " << str
                   << " the conversion state is not initial\\n";

     (void)std::mbrlen(&str[1], str.size() - 1, &mb);
     if (std::mbsinit(&mb))
         std::cout << "After processing the remaining 2 bytes of " << str
                   << ", the conversion state is initial conversion state\\n";
 }

.SH Output:

 After processing the first 1 byte of 水 the conversion state is not initial
 After processing the remaining 2 bytes of 水, the conversion state is initial conversion state

.SH See also

             conversion state information necessary to iterate multibyte character
   mbstate_t strings
             \fI(class)\fP
   C documentation for
   mbsinit
